<template>
    <div class="edit_container">
      <div class="btn_box">
        <el-button @click.stop="goBack">返回</el-button>
      </div>
      <Hyper ref="hyper" form-type="edit" :patient-info="patientInfo" :assess-info="assessInfo" :doctor-type="doctorType" />
      <div class="submit_btn_box">
        <el-button type="primary" :loading="submitLoading" @click.stop="submit">保存</el-button>
      </div>
    </div>
  </template>

  <script>
  import Hyper from '../../assessSys/components/hyperbaricNotice.vue'
  import { oxygenRecordEvaluateDetail, oxygenRecordEvaluate } from '../../../api/treatment/acuptreatment.js'
  import { queryPatientInfo } from '@/api/residentPhysician/cureBilling.js'
  import moment from 'moment'
  import { mapGetters } from 'vuex'
  import estimate from '@/mixins/estimate.js'

  export default {
    name: 'HyperEdit',
    components: { Hyper },
    mixins: [estimate],
    data() {
      return {
        assessId: 0,
        type: 0,
        source: 1,
        patientId: 0,
        patientInfo: {},
        assessInfo: {},
        submitLoading: false
      }
    },
    computed: {
      ...mapGetters([
        'user'
      ]),
      doctorType() {
        const sourceMap = {
          1: 'hospital',
          2: 'outpatient',
          3: 'therapists'
        }
        return sourceMap[this.source]
      }
    },
    mounted() {
      this.type = this.$route.query.type || 0
      this.source = this.$route.query.source
      this.assessId = this.$route.query.id
      this.patientId = this.$route.query.patientId
      this.getAssessInfo()
    },
    methods: {
      getAssessInfo() {
        // 执行获取治疗详情
        if(this.assessId == 0 && this.patientId == 0){
          this.$message.error('缺少医嘱ID或者患者ID')
          return
        }
        if(this.assessId){
          oxygenRecordEvaluateDetail({
            type: this.type,
            evaluateSource: this.source,
            relationId: this.assessId
          }).then(res => {
            this.patientInfo = {
              ...res.content
            }
            if (res.content.evaluateTime) {
              res.content.evaluateTime = moment(res.content.evaluateTime).format('YYYY-MM-DD HH:mm:ss')
            } else {
              res.content.evaluateTime = '/'
            }

            if (!res.content.evaluateUser) {
              res.content.evaluateUser = this.user.realname
            }
            this.assessInfo = {
              ...this.assessInfo,
              ...res.content
            }
          })
        }else{
          queryPatientInfo({
            page: 1,
            size: 10,
            hisPatientId: this.patientId
          }).then(response => {
            let { code, content } = response;
            let patientInfo = {}
            if (code === 0 && content) {
              patientInfo = content[0];
              console.log(patientInfo)
            } else {
              patientInfo = {};
            }
            this.patientInfo = {
              patientName: patientInfo.patientName,
              genderName: patientInfo.gender === 0 ? '女' : '男',
              age: patientInfo.age,
              departmentName: patientInfo.departmentName,
              admissionNum: patientInfo.admissionNum,
              sickRegion: patientInfo.sickRegion,
              bedNum: patientInfo.bedNum
            }
            let estimate2 = this.getEstimate(this.source, this.patientId, 2)
            if(estimate2){
              let localAssessInfo = this.getAssessInfoByEstimate(estimate2)
              this.assessInfo = {
                ...this.patientInfo,
                ...localAssessInfo,
                evaluateUser: this.user.realname,
                evaluateTime: '/'
              }
            }else{
              this.assessInfo = {
                ...this.patientInfo,
                evaluateUser: this.user.realname,
                evaluateTime: '/'
              }
            }
          }).catch(error => {
            this.$notify({
              title: '提示',
              message: '网络出差了,请稍后再试',
              type: 'danger'
            });
          })
        }
      },
      goBack() {
        this.$store.dispatch('tagsView/delView', this.$route)
        this.$router.back()
      },
      submit() {
        if(this.assessId){
          this.$refs.hyper.getFormData().then(data => {
            this.submitLoading = true
            oxygenRecordEvaluate({
              relationId: this.assessId,
              evaluateSource: this.source,
              nurseSignature: data.nurseSignature,
              nurseSignatureTime: moment(this.nurseSignatureTime).valueOf(),
              patientSignature: data.patientSignature,
              patientSignatureTime: moment(this.patientSignatureTime).valueOf(),
              agentSignature: data.agentSignature,
              agentRelation: data.agentRelation,
              agentSignatureTime: moment(this.agentSignatureTime).valueOf(),
            }).then(res => {
              this.$message.success('成功')
              this.$store.dispatch('tagsView/delView', this.$route)
              this.$router.back()
            }).catch(err => {
              this.$message.error(err.msg)
            }).finally(() => {
              this.submitLoading = false
            })
          })
        }else{
          this.$refs.deafGrade.saveLocalFormData(this.source, this.patientId).then(() => {
            this.$message.success('成功')
            this.$store.dispatch('tagsView/delView', this.$route)
            this.$router.back()
          })
        }
      }
    }
  }
  </script>

  <style lang="scss" scoped>
  @import url('./style.scss');
  </style>
